package com.young.design.pattern.factory.abstractfactory;

/**
 * 抽象工厂模式
 *
 * 该模式下将相同品牌（种类）的产品交由一个工厂的来创建，该工厂中有不同的生产 线来创建不同的产品类型
 *
 * 这种方式不仅解决了简单工厂模式的 “违反开闭原则的问题”，也解决开工厂 方法的类爆炸问题
 *
 *
 */
public class AbstractFactoryTest {
    public static void main(String[] args) {
        Farm farm = new SGfarm();
        Animal sgAnimal = farm.newAnimal();
        Plant sgPlant = farm.newPlant();
        sgAnimal.grow();
        sgPlant.grow();


        SRfarm sRfarm = new SRfarm();
        Animal srAnimal = sRfarm.newAnimal();
        Plant srPlant = sRfarm.newPlant();
        srAnimal.grow();
        srPlant.grow();
    }


}
